package com.list;

import com.domain.Student;

import java.util.ArrayList;
import java.util.Scanner;

//存储学生对象并遍历：创建一个存储学生对象的集合，存储3个学生对象，
// 实用程序实现在控制台遍历该集合，学生的姓名和年龄来自于键盘导入
public class StudentTest02_2 {
    public static void main(String[] args) {
        //创建一个集合，用于存储学生对象
        ArrayList<Student> list = new ArrayList<>();
        //利用抽取学生对象的getStudent方法快速得到三个学生对象
        Student stu1 = getStudent();
        Student stu2 = getStudent();
        Student stu3 = getStudent();
        //将创建的学生对象放到集合当中
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        //利用fori循环进行集合遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
            Student stu = list.get(i);
            System.out.println(stu.getName() + "  " + stu.getAge());
        }
    }
    //快速抽取方法：
    // 选中需要多次重复操作的代码 > Ctrl+Alt+M > 命名 > 根据返回值类型修改相应的方法对象名称和返回值（默认为void）
    private static Student getStudent() {
        //键盘录入一个学生对象
        Scanner sc = new Scanner(System.in);

/*        录入String类型数据可以用next()，也可以用nextLine()。当字符串和整数配合使用的时候，nextLine()失效。
        但是next()遇到空格会失去空格后面的内容，只能录入没有空格的数据。
         如：键盘录入"123 456"时，用nextLine()可以全部接收，用next()只能接收前半部分"123"。
*/
        System.out.println("请输入学生姓名：");
        String name = sc.next();
        System.out.println("请输入学生年龄：");
        int age = sc.nextInt();
        Student stu = new Student(name,age);
        return stu;
    }
}
